package com.example.administrator.yunniuusedcar.fragment;

import android.content.Intent;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.model.LatLng;
import com.daimajia.slider.library.SliderLayout;
import com.example.administrator.common.base.CommonSign;
import com.example.administrator.yunniuusedcar.MainActivity;
import com.example.administrator.yunniuusedcar.activity.Search_SSActivity;
import com.example.administrator.yunniuusedcar.adapter.HomeAdapter;
import com.example.administrator.yunniuusedcar.holder.HomeCategoryHolder;
import com.example.administrator.yunniuusedcar.model.mode_benn.ADbeen;
import com.example.administrator.yunniuusedcar.model.mode_benn.HomeMenuBean;
import com.example.administrator.yunniuusedcar.model.mode_benn.HomeRanCarListBean;
import com.example.administrator.yunniuusedcar.model.mode_benn.IHttpService;
import com.example.administrator.common.base.BaseFragment;
import com.example.administrator.yunniuusedcar.R;
import com.google.gson.Gson;
import com.liaoinstan.springview.widget.SpringView;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

import java.util.ArrayList;

import cn.sharesdk.onekeyshare.OnekeyShare;
import okhttp3.Call;
import okhttp3.Request;

import static com.example.administrator.common.base.Global.showToast;
/**
 * Created by Administrator on 2017/11/28.
 *  首页
 */

public class MainHomeFragment1Model extends BaseFragment {

    private ADbeen aDbeen;
    private SpringView springView;
    private RecyclerView recyclerView;
    private ImageView iv_Backs;

    private TextView tv_Address;
    private ImageView iv_Search;
    private ImageView iv_Shard;

    private IHttpService httpService;
    private ImageView iv_ZGHcar;
    private ImageView IV_homeCarPager;
    private SliderLayout slider;
    private HomeRanCarListBean homeCarListBean;
    private HomeAdapter homeAdapter;
    private ArrayList listDatas;

    private  HomeCategoryHolder homeCategoryHolder ;
    @Override
    public int getLayoutRes() {
        return R.layout.fragment_home01;
    }

    @Override
    public void initView() {
        CommonSign.ssign("goods/getlist");   // sign

        initLocations();   // 定位 分享、查询
       initFindView();
       initFindByID();
       initRecycleView();

        // 定位：
        //mMapView = new MapView(getContext());
        //initMap();
        //initLocation();
        //startLocation();  // 定位

        // 请求网络
        initUloadSlideVP();
       initUloadMenuList();
        initUloadCarList();
    }

    private void initRecycleView() {
        recyclerView = findView(R.id.recycler_view1);

        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));

        //创建数据
        listDatas = new ArrayList();

        // 设置适配器显示列表
        homeAdapter = new HomeAdapter(getContext(), listDatas);
        recyclerView.setAdapter(homeAdapter);

//        homeCategoryHolder = new HomeCategoryHolder(getContext(),);

    }

    private void initUloadCarList() {

        //   http://carshop.cloudabull.com/api/Index/getrandList?sign=324c41l+5prUictRCX6S5Y2gjmYZ5W5zK6nrvVSTdbbrVpaYVrAnqVROgVSHUW8

        String ull = IHttpService.HOST_URL + "Index/getrandList";    // 随机汽车
        OkHttpUtils.post().url(ull).addParams("sign",IHttpService.SignVal).build().execute(new StringCallback() {


            @Override
            public void onError(Call call, Exception e, int id) {
                System.out.println("-----====----------B"+ e);
     //          Global.showToast("请求超时！"+ e.getMessage());

            }

            @Override
            public void onResponse(String response, int id) {
                System.out.println("-----====-----------B1"+response);
                Gson jd = new Gson();
      //          Global.showToast("======----=--==" + response);
       //        Global.showToast("====="+ response);
                   homeCarListBean = jd.fromJson(response, HomeRanCarListBean.class);
            //    int car_id = homeCarListBean.Car_id();
                listDatas.add(homeCarListBean);
//                homeAdapter.setDatas(listDatas);
                homeAdapter.notifyDataSetChanged();  //刷新


            }
        });
    }    // 汽车列表
    private void initUloadMenuList() {

        String ul = IHttpService.HOST_URL + "Index/getmenuList";    // 主菜单

        OkHttpUtils.post().url(ul).addParams("sign",IHttpService.SignVal).build().execute(new StringCallback() {     //.addParams("type","1")

            @Override
            public void onError(Call call, Exception e, int id) {
//                Global.showToast("请求超时！"+ e.getMessage());
   //      System.out.println("-----====----------A"+ e);
            }

            @Override
            public void onResponse(String response, int id) {
//                Global.showToast("====="+response);
   //      System.out.println("-----====-----------A1"+response);
                Gson js = new Gson();
                HomeMenuBean aDbeen = js.fromJson(response,HomeMenuBean.class);

                listDatas.add(aDbeen);
                homeAdapter.setDatas(listDatas);


            }
        });
    }   // 主菜单
    private void initUloadSlideVP() {       // 轮播图      private void initUloadSlideVP() {       //


        String ule = IHttpService.HOST_URL + "Index/getadverList";    // 轮播图
//        sign 值： IHttpService.SignVal

        OkHttpUtils.post().url(ule).addParams("sign",IHttpService.SignVal).addParams("type","1").build().execute(new StringCallback() {
            int code ;   //1 成功   0 失败
//            if(code == 1){    //
//                return
//            }else{
//
//            };
            @Override
            public void onError(Call call, Exception e, int id) {
//                Global.showToast("请求超时！"+ e.getMessage());

                 System.out.println("-----====-----------D"+e);
            }

            @Override
            public void onResponse(String response, int id) {
                Gson js = new Gson();
                ADbeen aDbeen = js.fromJson(response,ADbeen.class);
                listDatas.add(aDbeen);
                homeAdapter.setDatas(listDatas);
            }

        });
    }

    // 定位 分享、查询
    private void initLocations() {

        tv_Address = findView(R.id.tv_address);      // 定位
        iv_Search = findView(R.id.iv_search);  // 查询
        iv_Shard = findView(R.id.iv_shard);    //一键分享

        iv_Search.setOnClickListener(new View.OnClickListener() {   // 查询
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.mactivity, Search_SSActivity.class));
            }
        });

    }

    /**
     * 地图显示控件
     */
    protected MapView mMapView;
    /**
     * 地图操作控件
     */
    protected BaiduMap mBaiduMap;

    protected LatLng mCurrentPos = new LatLng(23.1350700, 113.434437);

    ///////////////////////////////////////////////////////
    private void initMap() {
        mBaiduMap = mMapView.getMap();
        // 设置地图显示的中心位置
        mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(mCurrentPos));
        // 设置地图的缩放缩放级别：[3， 20]
        mBaiduMap.setMapStatus(MapStatusUpdateFactory.zoomTo(17));
    }
    private void initFindByID() {
 //       iv_ZGHcar = findView(R.id.iv_home_carType);   //中规豪车 平台
       IV_homeCarPager = findView(R.id.iv_home_carPage);    //  综合排序
//        iv_ZGHcar.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                startActivity(new Intent(getActivity(), DetailsCarActivity.class)); //  中规豪车 排序区
//            }
//        });
    }


    private void initFindView() {
        springView = findView(R.id.slider_layout);    // 轮播图


    }

    @Override
    public void initListener() {

//        IV_homeCarPager.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                startActivity(new Intent(getActivity(), CommodityDetailsActivity.class));   // 商品详情
//            }
//        });

        iv_Shard.setOnClickListener(new View.OnClickListener() {  //分享
            @Override
            public void onClick(View v) {
                showShare();
            }
        });
    }

    private void showShare() {
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();

        // 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法
        //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间使用
        oks.setTitle("shenmegui");
        // titleUrl是标题的网络链接，仅在人人网和QQ空间使用
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本，所有平台都需要这个字段
        oks.setText("我是分享文本");
        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl("http://sharesdk.cn");
        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称，仅在QQ空间使用
        oks.setSite(getString(R.string.app_name));
        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");

// 启动分享GUI
        oks.show(getContext());  ////?????
    }

    private LocationClient mLocationClient;

    private void startLocation() {
        // 打开定位图层
        mBaiduMap.setMyLocationEnabled(true);
        // mode - 定位图层显示方式, 默认为 LocationMode.NORMAL 普通态
        // enableDirection - 是否允许显示方向信息
        // customMarker - 设置用户自定义定位图标，可以为 null
        MyLocationConfiguration configuration = new MyLocationConfiguration(
                MyLocationConfiguration.LocationMode.FOLLOWING, true, null);
        mBaiduMap.setMyLocationConfigeration(configuration);

        LocationClientOption option = new LocationClientOption();
        // 高精度的定位
        option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
        option.setScanSpan(5000);             // 每5秒钟刷新一次位置
        option.setIsNeedAddress(true);       // 返回详细的地址信息
        option.setCoorType("bd09ll");        // 使用百度经纬度坐标系

        // 3、设置定位参数
        mLocationClient.setLocOption(option);
        // 4、开始定位
        mLocationClient.start();
    }

    private void initLocation() {   // 定位
        mLocationClient = new LocationClient(getContext());     //声明LocationClient类
        // initLocation();
        mLocationClient.registerLocationListener(new BDLocationListener() {  ////////////
            @Override
            public void onReceiveLocation(BDLocation location) {
                //("========================66666=========================");
                if (location == null) {
                    return;
                }
                double latitude = location.getLatitude();
                //    double longitude = location.getLongitude();
                String address = location.getAddrStr();   // 详细的地址信息
                String city = location.getCity();

                String info = "city: " + city //
                        + "   address： " + address ; //
                String s = location.getCity();
                tv_Address.setText(s);

                showToast(info);    //注册监听函数
            }
        });
    }



    @Override
    public void initData() {
      //  initRetrofin();
       // initDataes();

    }

    }

